Electronic systems and circuits have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous electronic technologies such as digital computers, calculators, audio devices, video equipment, and telephone systems facilitate increased productivity in analyzing and communicating data, ideas and trends in most areas of business, science, education and entertainment. Often these advantageous results are achieved through the use of distributed resources that communicate with each other over a network. Networks typically include a variety of nodes coupled together by various links or paths. The rate at which a network communicates information between nodes is referred to as bandwidth and it is usually desirable for the information to be communicated smoothly and at a rapid rate. However, it is often difficult to precisely measure the dynamic bandwidth available within a node and coordinate information departure from the node at a desirable rate in accordance with available bandwidth.
Communication networks typically include numerous different components with various capabilities and limitations. Controlling information traffic flow smoothly without glitches over a network of diverse components is often complicated and difficult. There are a number of different communication traffic flow problems that can arise in a communication network and these problems often result in undesirable consequences such as high latency and/or dropped information. Further complicating bandwidth control is the variety of different traffic rates that typically occur in a network. For example, varying rates can cause significant planning or scheduling issues, such as unpredictable available rates at nodes with fixed maximum input and/or output capacities. Tremendous growth in communication traffic due to a seemingly insatiable desire for new services has led to greater demand for increased rate and bandwidth capabilities. However, increasing the upper bounds on rates at which the information is communicated tends to exacerbate information flow control problems.
One traditional approach to communicating information via a network includes “cell switching” in which digital information is segmented into units called “cells” (e.g., fixed size packets) that are transmitted from a source node to a destination node through a “connection” in a digital network. A communication link can usually communicate or carry a variety of different connections simultaneously. Accordingly, cells belonging to each connection are often handled or serviced differently at each node (e.g., router, switch, etc.) in order to meet overall network goals. To assist servicing of a cell, many traditional routers or switches include a memory or buffer used for temporarily holding or storing information in a “queue” prior to transmission on a communication link. Servicing of a buffer is usually accomplished by sending information (e.g., a cell) from that buffer out “into” the network on a communication link. For example, the information is removed from its associated memory or buffer and forwarded on the network towards its final destination.
The information is usually forwarded in accordance with a scheduling scheme that determines when the information is sent. Scheduling schemes are usually a critical part of managing information flow through individual nodes and a network as a whole. Bandwidth is typically limited and managing the information flow is often critical to end use applications. For example, some end user sophisticated applications may have a need for information to be communicated in real time with relatively small latency while other non sophisticated applications can endure some latency. However, the non sophisticated applications may be critical for some operations and depriving them of bandwidth opportunity can be devastating. Thus, it is important for scheduling schemes to maintain appropriate information flow.
In Asynchronous Transfer Mode (ATM) the information is segmented into equal sized cells or packets and usually involves precise rate control for each connection. ATM scheduling of available bit rate (ABR) and weighted fair queue (WFQ) flows typically mandates distribution of available bandwidth to active flows or connections based upon the weights assigned to the flow or connection. The buffers included in ATM nodes (e.g., routers, switches, etc.) typically provide an information reservoir for assisting smooth communication flow. While a buffer can often provide some assistance in maintaining a smooth flow of information, the “buffering” capacity is usually limited and the rate at which information is queued in the buffer can cause problems. If the rate is too high the buffer usually overfills and the information is dumped. If the rate is too low the buffer usually empties and bandwidth is not fully utilized. As communication rates increase, controlling buffer fill levels and smooth flow of information through a router or switch, efficiently utilizing available bandwidth, and providing accurate rate information to other network components usually becomes more difficult.